Data processing system, data processing method and program

ABSTRACT

In the host, an IP issues CCW, and a CH encodes the CCW and a CCW chain by the encode program to create a code including the description of controlling a conditional branch with the DKC and transmits the code to a PORT in the DKC. In the DKC, the PORT decodes the code by the decode program, and a CP sequentially processes each command obtained by the decoding and returns a return code representing the end state of the processing. The host receives the return code to recognize the end state of the processing.

CROSS-REFERENCE TO RELATED APPLICATION

The present application claims priority from Japanese Patent ApplicationNo. JP 2005-98971 filed on Mar. 30, 2005, the content of which is herebyincorporated by reference into this application.

1. Technical Field of the Invention

The present invention relates to a data processing system to perform acommand processing between data processing apparatuses, especiallyrelates to a technology for processing commands and relevant databetween a storage control unit such as a disk control unit (referred toas a DKC) in a disk array apparatus (referred to as a storage apparatus)and a host computer (referred to as a host).

2. Background of the Invention

Conventionally, in the data processing system wherein the host and thedisk array apparatus is connected through the channel for communication,generally, the host issues and transmits CCW (channel command word) tothe DKC to make the DKC perform the command processing. Particularly,the host issues and transmits a CCW chain to the DKC in order to makethe DKC continuously perform processing operation and jobs between thehost and the DKC. The CCW chain has various kinds such as a CCW chainfor controlling the data write to the storage unit such as a HDD (harddisk drive).

In a configuration example of the conventional data processing system asshow in FIG. 8, a host 901 issues a plurality of CCWs 801 as a CCW chain802 and transmits them to a DKC 902 in a disk array apparatus 900 tomake the DKC 902 process a CCW chain 804 and a CCW 805. For example, thehost 901 issues the CCW chain 802 as shown in FIG. 9 to make the DKC 902perform one processing operation and job. When the CCW chain 802 isprocessed between the host 901 and the DKC 902, an IP 111 creates theCCW chain 802 in a MS 112 in the host 901. A CH 113 transmits the CCWchain 802 as a frame 803 of the CCW 801 to a PORT 121 of the DKC 902.The frame 803 of the CCW 801 is received at the PORT 121 of the DKC 902so that the CCW chain 804 is obtained by the DKC 902. A CP 123sequentially processes each CCW 805 constituting the CCW chain 804. ThePORT 121 transmits response status of the processing result of the CCW805 to the CH 113.

The CCW 801 and the CCW 802 issued from the host 901 may include, forexample, a search condition. The search condition is information of thecondition for a search processing performed in the DKC 902. The DKC 902performs the search processing to the CCW 805 according to the searchcondition. The result of the search processing is returned to the host901 as a response status. The search processing is, for example,performed in order to check whether or not the value in the memory areaof the DKC 902 is matched with the value for the search condition. Thehost 901 determines the CCW 801 to be issued subsequently based on thestate of the CCW 801 including the search condition in the DKC 902 andthe response status from the DKC 902 according to the processing result.

Japanese Patent Application Laid-Open Publication No. 2001-125866describes a technology for reducing an overhead in communication betweenthe CPU and the DKC, namely a technology for batch processing of aplurality of CCWs and performing a recovery processing as in theindependent processing even if the CCW is abnormally ended in the batchprocessing.

SUMMARY OF THE INVENTION

If a plurality of CCWs are issued as described in the background art,information such as headers is added to each CCW and its parameter. Thusthe channel between the host and the DKC is burdened with overhead andthe traffic on the path is increased. Additionally, the statusinformation is exchanged for each CCW and the traffic is furtherincreased.

Thus, in order to reduce the overhead of the channels and the traffic ofthe paths, the method of transferring and processing collectively aplurality of CCWs as the CCW chain is disclosed in the above describedJapanese Application Laid-open Publication No. 2001-125866. However, theabove described method is of sequentially processing the CCWs. If aplurality of CCWs include a conditional branch such as a jumpinstruction, the executable sequence of the CCWs is changed inaccordance with the response from the DKC. Therefore, the above methodcan not collectively transfer a plurality of CCWs through the path ofthe channel. Additionally, when the DKC processes the plurality of CCWsincluding the conditional branch, it is difficult to determine theposition at which the process is ended in the program. Therefore, thehost can not know whether the process is normally performed for each CCWof the CCW chain.

The present invention has been made in consideration of theabove-mentioned problem. An object of the present invention is toprovide a technology used in a data processing system wherein a firstdata processing apparatus such as the host to issue the command and asecond data processing apparatus such as the DKC to process the commandare communicatively connected. By collectively processing the group of aplurality of command words (CW) including the conditional branch at thefirst data processing apparatus and the second data processingapparatus, the load on the processing including CW transfer between thefirst and second data processing apparatuses is reduced to improve theprocess performance.

The following is a brief description of the gist of the representativeelements of the invention disclosed in this application. In order toachieve the above described object, the first data processing apparatussuch as the host to issue the command (CCW) and the second dataprocessing apparatus such as the storage control unit (DKC) to processthe command are communicatively connected in the data processing systemof the present invention. The data processing system includes thefollowing technical means. The disk array apparatus comprises a storageunit and a disk control unit (DKC) for controlling of data storage tothe storage unit. The disk array apparatus achieves RAID control. TheDKC inputs/outputs data to the storage volume responsive to commands andrequests from the host.

(1) In the data processing system according to the present invention,the first data processing apparatus encodes a group of a plurality ofcommand words (CWs) to create a code including a description ofcontrolling the conditional branch and transmits collectively the codeto the second data processing apparatus to process them. Thus theplurality of CWs is batched in order to perform a sequential processingoperation and job including the conditional branch according to thestate and the processing result in the second data processing apparatusthrough the communication processing between the first data processingapparatus and the second data processing apparatus. The first dataprocessing apparatus can perform the batch processing with the code inthe case of a process by the CW chain that the conditional branch is notincluded and a plurality of CWs are sequentially performed, and in thecase of a process by the plurality of CWs including the conditionalbranch. When the batch processing is performed, the first dataprocessing apparatus encodes by executing an encode program and thesecond data processing apparatus decodes corresponding to the encodingby the executing a decode program, respectively.

In the data processing system according to the present invention, thefirst data processing apparatus comprises an arithmetic processing unitto execute programs, issue the command and process the input/output datato the storage volume, a storage unit to store various data orinformation relating to the process by the first data processingapparatus, such as programs, the command, the input/output data andcontrol information and an input/output channel unit to controlcommunication with the second data processing apparatus including thecommand transferring.

The second data processing apparatus comprises a control processor unitto control the storage regarding the input/output data and perform thecommand processing corresponding to the command, a memory unit to storevarious data or information relating to the process by the second dataprocessing apparatus, such as programs, the command, the input/outputdata and control information and an input/output port unit to controlcommunication with the first data processing apparatus including thecommand transferring.

In the first data processing apparatus, the arithmetic processingcreates a plurality of channel command words, the input/output channelunit encodes the plurality of channel command words to create a codehaving a command, its parameter and the input/output data and includingthe description of controlling the conditional branch according to thestate and the processing result in the second data processing apparatus.The code portion created by the encoding is connected to behind theexisting code portion. Thus the code in the form of one data stream iscreated.

The input/output channel transmits the created code as a flame to theinput/output port. The input/output channel unit sets the code as theparameter of the flame of the command for batch processing to performtransfer processing. The input/output port unit receives the frameincluding the code and takes out the code.

In the second data processing apparatus, the input/output port unitdecodes the code and passes it to the control processor unit. Thecontrol processor unit sequentially processes each command and itsparameter obtained by the decoding according to the description ofcontrolling the conditional branch. And the control processor unitreturns status information representing the processing result. Theinput/output port unit transmits the status information as a response tothe input/output channel unit. The input/output port unit receives thestatus information of the response and reports it to the arithmeticprocessing unit.

In the encode processing by the first data processing apparatus, the CWsuch as the jump instruction corresponding to the original conditionalbranch is encoded to the code portion that includes the CW for theconditional branch corresponding to the status of the processing resultof the other CW and includes an address to be jumping destination and alabel. The CW for the conditional branch corresponding to the status ofthe processing result of the other CW in the code is a jump instructioncorresponding to the status of the processing result of the CW for thelast preceding conditional determination processing. In the second dataprocessing apparatus, the CW for the conditional branch such as the jumpinstruction is performed to jump the process according to the status ofthe result of processing the other CW. Alternatively, the CW for theconditional branch is skipped to shift to perform the next CW.

(2) The data processing system described in the above (1) according tothe present invention is characterized in that: In the first dataprocessing apparatus, the description of a return code corresponding tothe end state and position of the process according to the conditionalbranch is included in the code by the encoding. Thereby the second dataprocessing apparatus transmits the status information including thereturn code corresponding to the end state and position of the processaccording to the conditional branch to the first data processingapparatus as the result of the code processing. The first dataprocessing apparatus recognizes the end state and position of theprocess by the return code included the status information.

Additionally, the first data processing apparatus determines the processto be performed subsequently based on the receipt of the return code. Ifthe return code indicates that the process is normally ended, the firstdata processing apparatus determines the command word to be issuedsubsequently. Alternatively, if the return code indicates that theprocess is abnormally ended, the first data processing apparatusperforms a recovery processing to the command word corresponding to theposition at which the process is ended.

(3) The data processing method corresponding to the data processingsystem and the program to perform the process thereof is characterizedin that: The first data processing apparatus encodes a plurality of CWsto create one code including the description of controlling theconditional branch and transmits the created code to the second dataprocessing apparatus. The second data processing apparatus receives thecode from the first data processing apparatus, decodes the code toprocess each CW obtained by the decoding according to the description ofcontrolling the conditional branch. The second data processing apparatustransmits the status information corresponding to the end state andposition of the process as a response to the first data processingapparatus. The first data processing apparatus receives from the seconddata processing apparatus the status information representing theprocessing result of the code as a response and recognizes the end stateand position of the process.

The following is a brief description of the effects obtained from therepresentative elements of the invention disclosed in this application.According to the present invention, in the data processing system inwhich the first data processing apparatus such as the host to issue thecommand and the second data processing apparatus such as the DKC toprocess commands are communicatively connected, the first and seconddata processing apparatuses performs batch-processing for a group of aplurality of command words (CWs) including the conditional branch. Thusthe load on the process including transferring of the CW between thefirst data processing apparatus and the second data processing apparatuscan be reduced and the process performance can be improved.

BRIEF DESCRIPTIONS OF THE DRAWINGS

FIG. 1 is a block diagram representing the entire configuration of thedata processing system and a data processing method of an embodimentaccording to the present invention;

FIG. 2 is a perspective view representing the external appearance of theentire hardware of the disk array apparatus of an embodiment accordingto the present invention;

FIG. 3 is a table representing an example of creation of codes in thedata processing system of an embodiment according to the presentinvention;

FIG. 4 is an explanatory view representing the frame format of a newcommand prepared for batch processing of CCWs in the data processingsystem of an embodiment according to the present invention;

FIG. 5 is a sequence diagram of the data processing when the batchprocessing of CCWs between the host and the DKC in the data processingsystem of an embodiment according to the present invention;

FIG. 6 is a flowchart of encoding by the CH of the host in the dataprocessing system of an embodiment according to the present invention;

FIG. 7 is a flowchart of decoding by the PORT of the DKC in the dataprocessing system of an embodiment according to the present invention;

FIG. 8 is a block diagram representing a configuration example of theconventional data processing system and data processing method tocompare with the present embodiment;

FIG. 9 is a table representing an example of a CCW chain in aconfiguration example of the conventional data processing system;

FIG. 10A is a sequence diagram representing processing of the CCW chainbetween the host and the DKC in a configuration example of theconventional data processing system; and

FIG. 10B is a diagram representing processing of the CCW chain betweenthe host and the DKC in a configuration example of the conventional dataprocessing system.

DESCRIPTION OF THE PREFERRED EMBODIMENTS

An embodiment of the present invention will be described in detail withreference to the drawings. Incidentally, the same reference numeralswill be used to designate the same or similar components in alldrawings, and the repeating description will be omitted or simplified.

<Summary>

In an embodiment according to the present invention, the data processingsystem in which the mainframe host and the disk array apparatus arecommunicatively connected has a function to collectively process aplurality of CCWs including the conditional branch by the code. The hostencodes the plurality of CCWs to the code of the type of describing inCWs the controlling of the conditional branch responsive to theconditions. Due to this, the plurality of command according to theresponse from the DKC is controlled to progress by the DKC using thedescription of code in place of the host that had been controlling theprogress. When a plurality of CCWs and CCW chain are processed by theDKC, the host encodes the plurality of CCWs to create a code in apredetermined format and transmits the created code as one flame to theDKC. The DKC decodes the code included in the received flame tosequentially perform CCW processing. Particularly in the encodingprocess, the host creates the code describing the control of theconditional branch in CCW when the process including the conditionalbranch according to the state and the processing result in the DKC isperformed. In the decoding, the DKC performs a conditional determinationprocessing in accordance with the description of controlling theconditional branch in the decoded CCW and branches the process inaccordance with the state and the processing result in the DKC toperform each CCW processing. Then the DKC returns to the host statusinformation corresponding to the end state and position of the processaccording to the conditional branch.

In order to clearly represent the feature of the present embodiment, theconventional data processing system and the data processing method to becompared with the present embodiment will be described with reference toFIGS. 8-10.

<Conventional Configuration>

FIG. 8 represents a configuration example of the conventional dataprocessing system and data processing method. FIG. 9 is a tablerepresenting a example of a CCW chain in a configuration example of theconventional data processing system. FIG. 10 is a sequence diagramrepresenting processing of the CCW chain between the host and the DKC ina configuration example of the conventional data processing system. Asan example, a mainframe data processing system in which a mainframe host901 and a disk array apparatus 900 are communicatively connected isrepresented.

The data processing system according to FIG. 8 comprises the host 901and the disk array apparatus 900. The host 901 is connected to the DKC902 through a path-104. The DKC 902 and a DKU (disk unit) 103 areconnected through a path 105 in the disk array apparatus 900. The DKU103 includes a plurality of disk drives (DKs) 131 such as HDDs.

The host 901 issues a plurality of CCWs 801 and makes the disk arrayapparatus 900 perform processing operation and job using a CCW chain 802as a group of the CCWs in this system. The host 901 transmits the CCWchain 802 to be sequentially performed in the DKC 902 to the DKC 902through the path 104 of the channel between the host 901 and the DKC 902to make the DKC 902 sequentially process each CCW 805.

The host 901 includes an arithmetic processing unit (IP) 111, a mainstorage unit (MS) 112, an input/output channel unit (CH) 113 and asystem controller (SC) 114. The host 901 issues and transmits the CCW801 to the DKC 902 to perform various data processing such as datainput/output to the storage volume of the disk array apparatus 900 andthe control thereto. The host 901 accesses to DKC 902 by Read/Writecommand through the path 104 of the channel between the DKC 902 and thehost 901 to read/write data to the storage volume. The host 901especially has a function to control the CCW chain 802 comprised of aplurality of CCWs 801 to control to progress the processing of each CCW801. The host 901 controls the data processing by executing programs andhardware logic, issues a plurality of CCWs 801, transmits the CCWs 801and the CCW chain 802 to the DKC 901, receives a response status andcontrol to progress the CCW chain 802.

The DKC 902 includes an input/output port unit (PORT) 121, a cachememory unit (CM) 122, a control processor unit (CP) 123, a data transfercontrol unit (DTC) 124 and a shared memory unit (SM) 125. The DKC 902has a function for storage control such as data input/output to thestorage volume and particularly, a function to process the commandcorresponding to each CCW. The DKC 902 reads/writes data to the storagevolume of the DKU 103 responsive to the command from the host 901.

Generally, the CCW chain 802 has been processed as follows. In the host901, the IP 111 creates the CCW chain 802 as shown in FIG. 9 in anregion of the MS 112. The CH 113 sequentially transfers the CCW chain802 in the form of the frame 803 for each CCW 801 through the path 104of the channel to the PORT 121 of the DKC 902. The DKC 902 obtains a CCWchain 804 (equivalent to the CCW chain 802) from the frame 803 of theCCW 801 received at the PORT 121. The CP 123 sequentially processes eachCCW 805 (equivalent to the CCW 801) of the CCW chain 804. According tothese procedures, the processing operation and job corresponding to theCCW chain 802 can be achieved.

Incidentally, data and information of the CCW chain 804 received at thePORT 121 in the DKC 902 is stored once in the region such as the CM 122and the SM 125 and the stored data and information may be retrieved toprocess by the PORT 121 and the CP 123.

When the CCW chain 802 is processed, the CCW 801 issued by the host 901may include the search condition of the DKC 902. The CCW 801 includingthe search condition is issued and then a search process according tothe search condition is performed in the DKC 902. The search result isreturned from the DKC 902 to the host 901 as a response status. Thesearch process is performed to check whether or not the value of thememory area in the DKC 902 is matched with the conditional value. Thehost 901 determines the CCW 801 to be issued subsequently based on theresponse status from the DKC 902 including the search condition of theCCW 801 and issues the next CCW 801 according to the determination. Thehost 901 branches the process to be performed by the DKC 902 accordingto the response status of the CCW 801.

<Conventional CCW Chain>

The CCW chain 802 is an group consisting of a plurality of associatedCCWs for executing the sequential command process, in which theexecution sequence of each CCW 801 has own meaning. In order to performone processing operation or job in the disk array apparatus 900, thehost 901 usually issues a series of CCWs 801 as a CCW chain 802 andmakes the DKC 902 sequentially process each CCW 805. The CCW 801 isreceived by the channel between the host 901 and the DKC 902.Especially, the CCW 801 is a CW issued from the host 901 to the DKC 902.As the CCW chain 804, for example, there is a CCW chain for writecontrol to the disk drive 131 as a control command for input/outputdata. An example of CCW chain is described in the above-describedJapanese Patent Application Laid-Open Publication No. 2001-125866.

The table of FIG. 9 includes each item of a number (#) 201, an address202, a command code 203, a chain (flag) 204, a parameter 205, and acommand 206. The right hand of the table indicates the branch and end ofprocesses. The number 201 of the far left column is a number assignedfor descriptive purposes to identify each CCW 801 and control step andit is not required in actually transfer processing. One CCW chain 802including the conditional branch is comprised of each CCW 801 indicatedby the number #1-#11 in the present embodiment. The address 202 stores acommand (CCW). The command code 203 identifies the command. The chain204 is a flag to indicate a presence or absence of a chain connectingthe current command to the next command. The parameter 205 is a commandparameter. The command 206 is a corresponding command name.

In the CCW chain 802 in the host 901 of this example, “TEST MEM” commandof a command code “8B” is stored in an address X00 of #1. The parameteris “1001 0000 0002 0000 01” (hexadecimal notation) and a chain exists.“Tic” command of a command code “08” is stored in an address X08 of #2.The parameter is “0000 0040” and a chain exists. “ALW CRS” command of acommand code “83” is stored in an address X40 of #9. The parameter is“52” and a chain does not exist.

The CCW chain 802 is processed by the following procedure in thisexample. When performing the CCW chain 802 between the DKC 902 and thehost 901, the host 901 issues the CCW 801 in numerical orderfundamentally. The CCW chain is ended by performing “Program end”command of #8. When the CCW chain 802 does not include the conditionalbranch, it can be performed in numerical order. Therefore, the host 901can sequentially transfer the CCW chain 802 as the frame for each CCW803 to the DKC 902 through the path 104. However, when the CCW chain 802includes the conditional branch as shown in FIG. 9, the host 901determines the next CCW to be branched by a part of commands accordingto the response status from the DKC 902.

In this example, “TEST MEM” command of #1 is a command whose parameterincludes the description of the condition to make the DKC 902 determinethe condition and return the status of the result as a response. “Tic”command of #2 in this example is a jump instruction of a program addressand the command is not transmitted to the DKC 902. The host 901 updatesthe program counter such that the control is sifted to the address ofthe jumping destination designated by the parameter of the “Tic” commandin accordance with the response status representing the determinationresult of the last “TEST MEM” command in the DKC 902. Alternatively, thehost 901 ignores the command (skip) and shifts to the CCW in the nextstep.

Thus, the host 901 controls by the IP 111 and CH 113 the proceeding ofissuing, transferring, performing and so on of a plurality of CCWs 801constituting the CCW chain 802. The DKC 902 processes the command ofeach CCW by the CP 123 or so.

FIGS. 10A and 10B are a sequence diagrams representing the processbetween the host 901 and the DKC 902. FIG. 10A represents an examplewhen a jump by “Tic” command does not occur in the process of the CCWchain 802. FIG. 10B represents an example when a jump by “Tic” commandoccurs in the process of the CCW chain 802.

The host 901 issues the CCW(“TEST MEM” command) of #1 and transmits itto the DKC 902 in a step S1 of FIG. 10A. The frame 803 of the CCWtransmitted in the #1 includes a command code “8B” and a parameter “10010000 0002 0000 01”. The DKC 902 receives the CCW of the #1 anddetermines the condition such as a search processing according to thecondition set in its parameter. Then the DKC 902 transmits the status ofthe determination result as a response to the host 901. The S2represents that it is determined that the search condition is mismatchedand a condition mismatching status as the response status is transmittedto the host 901.

After transmitting the CCW of the #1, the host 901 proceeds the programaddress for two steps from the #1. And the CCW (“Tic” command) of thenext #2 is ignored i.e. skipped to proceed to the next step (#3). Then,the host 901 issues the CCW of #3 in which the conditional value ischanged from #1 and transmits the CCW of #3 to the DKC 902 in a step S3.Alternatively, the S2 also represents that it is determined that thesearch condition is mismatched and that a condition mismatching statusis returned to the host 901. Thus the CCW of the next #4 is ignored in astep S4 and a CCW of #5 in which the conditional value is changed isissued and transmitted in a step S5. While, a step S6 represents thatthe DKC 902 determines that the search condition is mismatched and thata condition mismatching status is returned to the host 901. The host 901ignores the CCW (“Tic” command) of the next #6 responsive to the receiptof the condition matching status, and issues and transmits the CCW(“T&S” command) of #7 in a step S7. When the CCW is normally processedin the DKC 902 and then the normal status is returned to the host 901,the host 901 ends a sequence of processes of the CCW chain 802 by theCCW “Program end” of the next #8 without chaining to the next.

Steps S1, S2 and S3 of FIG. 10B are same as those of FIG. 10A. S4represents that determining the condition according to the condition setto the parameter of the CCW of #3, and then the DKC 902 transmits acondition matching status to the host 901.

After transmitting the CCW of #3, the host 901 progresses the programaddress for one step from #3 upon receipt of the condition matchingstatus so as to make available the next CCW (“Tic” command) of #4 andperform it. The jumping destination designated by the parameter of the“Tic” command of #4 is the address of the CCW (“ALW CRS” command) of#10. Accordingly, the host 902 jumps to the address of #10 to be jumpingdestination of the process and sifts the control. Then the host 902issues and transmits the CCW (“ALW CRS” command) of #10 to the DKC 902in a step S5. And the CCW process of #10 is executed in the DKC 902 toend the process of the CCW chain 802.

In this example, when the system intends to perform the CCW chain 802and a plurality of CCWs 801 including branches of processes according tothe state and processing result in the DKC 902 as in the case including“Tic” command, the sequence of progress of CCWs of the CCW chain 802 inthe host 901 is changed according to the response status from the DKC902. Therefore, the host 901 can not collectively transfer the CCW chain802 to the DKC 902 through the path 104. That is, a time for waiting toreceive the response status from the DKC 902 is required and a temporalsynchronous processing between the host 901 and the DKC 902 byinterlocking is required. Therefore the process performance can not beimproved in this system.

<Data Processing System>

FIG. 1 is a block diagram represents the configuration of the dataprocessing system of an embodiment according to the present invention.The hardware configuration is the same as that of FIG. 8. The presentsystem is a mainframe data processing system in which a mainframe host101 and a disk array apparatus 100 are communicatively connected. Thesystem comprises the host 101 and the disk array apparatus 100. The host101 is connected to a DKC 102 through a path 104. The DKC 102 and a DKU(disk unit) 103 are connected through a path 105 in the disk arrayapparatus 100. The DKU 103 includes a plurality of disk drives (DKs)131. The DKC 102 can control a group of DKs 131 in RAID format.

Programs such as an OS are operated on the host 101. The host 101 issuesand transmits the command as CCW to the DKC 102 to make the DKC 102process the command, and performs various data processing such as datainput/output and the other controls to the storage volume of the diskarray apparatus 100. The host 101 can access the DKC 102 by Read/Writecommand through the path 104 of the channel to the DKC 102 to read/writedata to the storage volume. A storage volume or a device to store datais located on the DK 131 in the DKU 103 and managed with the ID(identifier).

The host 101 especially has a function to manage a CCW chain 402comprised of a plurality of CCWs 401 to control the progress of theprocess of each CCW 401. The host 101 controls a data processing byexecuting programs and hardware logic, issues a plurality of CCWs 401,transmits the CCWs 401 and the CCW chain 402 to the DKC 101, receives aresponse status and control the progress of the CCW chain 402. In thisembodiment, the controlling of the progress of the CCW 401 and the CCWchain 402 is achieved by encoding a code 403. The host 101 performs anencoding by executing an encode program 115 and correspondingly, the DKC102 performs a decoding by executing a decode program 126.

Communication is performed through the path 104 between the host 101 andthe DKC 102 according to a predetermined I/F. The I/F is a mainframeprotocol such as FICON (Fibre Communication)(registered trademark) andESCON (Enterprise System Connection) (registered trademark). The path104 of the channel is constructed by the wiring such as a communicationcable and the necessary electric parts such as a connector. The port ofthe communication I/F in the host 101 is referred to as a channel. ThePORT 121 of the DKC 102 has an input/output processing functioncorresponding to the channel of the host 101. A channel as the path totransfer data and control information is located between the host 101and the DKC 102 in the form of direct connection or network connection.

<Host Computer>

The host 101 comprises an arithmetic processing unit (IP) 111, a mainstorage unit (MS) 112, an input/output channel unit (CH) 113 and asystem controller (SC) 114 as shown in FIG. 1.

The IP 111 executes programs of the host 101 such as an OS and anapplication, issues the CCW 401 and the CCW chain 402 and stores them ina memory area such as the MS 112.

The MS 112 stores various data and information such as programs,input/output data, the command such as the CCW 401 and the created code403. Those of data and information may be stored in the memory in the CH113.

The CH 113 performs communication processing with the external diskarray apparatus 100 through the input/output channel (referred to as aport). The CH 113 is referred to as a host bus adapter (HBA). The CH 113transmits the CCWs in the form of a frame through the path 104 to thePORT 121 of the DKC 102 and receives the response frame. The CH 113especially transmits the code 403 including a plurality of CCWs 405 as aframe 404 for batch-processing of the CCW and receives the responseframe from the PORT 121. The CH 113 performs an encoding as acharacteristic process by executing the encode program 115. The CH 113encodes a plurality of CCWs 401 stored in the MS 112 by executing theencode program 115 to create the code 403.

The SC 114 controls the system and transfers data between each unit ofthe host 101.

<Disk Control Unit>

The DKC 102 comprises an input/output port unit (PORT) 121, a cachememory unit (CM) 122, a control processor unit (CP) 123, a data transfercontrol unit (DTC) 124, a shared memory unit (SM) 125 and a decodeprogram 126 as shown in FIG. 1. The DKC 102 includes a function ofstorage control for data input/output to the storage volume of the DKU103 and RAID control. The DKC 102 and especially includes a function toprocess the command corresponding to each CCW. The DKC 102 executes datareads/writes to the storage volume of the DKU 103 according to thecommand from the host 101. The command processing function includes theprocess corresponding to the CCW 405 added by encoding in the host 101.

The PORT 121 performs communication processing with the external host101 at the input/output port. The PORT 121 receives CCWs in the form ofa frame through the path 104 to the CH 113 and transmits the responseframe. The PORT 121 especially receives the frame 404 for batchprocessing of CCWs, transmits the response frame and decodes the code403 by executing the decode program 126.

The CM 122 is a memory to cache data in the DKC 102. The SM 125 is amemory to store control information and management information in theDKC 102. The DKC 102 performs data processing while the PORT 121 and theCP 123 appropriately store data and information on the CM 122 and the SM125 through the DTC 124 to process data in.

The CP 123 performs data processing and data controlling including CCWprocessing in the DKC 102. The process and control by the CP 123 isequivalent to storage control function. The CP 123 includes at least amicroprocessor and processes the command corresponding to each CCW 405obtained by decoding.

The DTC 124 controls data transfer between each unit in the DKC 102. Forexample, the DKC 124 is configured by a connection network such asswitch for switching and controlling data transfer; and a DMA controlcircuit that performs DMA data transfer processing.

The PORT 121 may be a channel control unit (CHA) to perform channel I/Fprocessing to the external device. The CP 123 may be configured byinterconnecting each functional unit, such as the CHA and a disk controlunit (DKA) to perform disk I/F processing. The CHA controlscommunication with one or more external devices through a plurality ofports. The DKA controls data input/output to the DK 131 in the DKU 103through the path 105.

The DKC 102 may be configured by interconnecting a plurality of controlpackages corresponding to the functional unit such as the CHA. Further,a SVP (supervisor unit) 196 including a processor for maintenanceprocessing is connected to the DKC 102 in the disk array apparatus 100.An operator can operate the SVP 196 to perform various processesinvolving maintenance of the disk array apparatus 100 by the SVP 196.The SVP 196 maintains configuration information and fault informationregarding the disk array apparatus 100. Additionally, the SVP 196 mayinstall programs to be executed on each unit in the DKC 102 and set theconfiguration of the storage volume.

<Hardware of Disk Array Apparatus>

FIG. 2 is a perspective view representing the external appearance of theentire hardware of the disk array apparatus 100. The disk arrayapparatus 100 is constructed by a base chassis and an expansion chassis.The front of the base chassis is transparently viewed from upper rightdirection in FIG. 2, which represents the placement of each unit in thebase chassis. The base chassis is the minimum constitutional unit andincludes storage control function taken on the DKC 102 and storagefunction taken on the DK 131. The expansion chassis is the option unitand includes storage function. Each chassis is communicatively connectedto each other through the communication cable.

A plurality of batteries 191, a plurality of AC boxes 192, a pluralityof AC-DC power sources 193, a DKC box 194, a plurality of fans 195, aSVP 196, a panel 197, a DKU box 198 and a plurality of fans 199 areprovided from the bottom in the base chassis.

The batteries 191 are connected to the AC-DC power sources 193 to serveas a backup power at the power failure. The AC boxes 192 are junctionsto connect an input AC power source and connected to the AC-DC powersources 193. The AC-DC power sources 193 perform AC/DC conversion of theinput AC power to supply the DC power to each unit in the DKC 102.

The DKC box 194 has structures such as a plurality of slots beingcapable of mounting control packages constituting the DKC 102. Thecontrol packages are releasably connected through each slot and can bereplaced per units of a control package. The control package mainlyincludes a board on which each functional unit such as the host I/F ispackaged and is integrally modularized to additionally haveelectrical/mechanical mechanism such as a canister.

The SVP 196 is formed of a laptop computer. The SVP 196 is usuallyreceived into the chassis and taken out to the front in use. In thepanel 197, a switch for the basic operation of the disk array apparatus100 and an indicator to indicate various information are provided. Theplurality of fans 195 and 199 provided in the chassis transmit air toeach unit in the chassis and each unit is air-cooled. A plurality ofstorage units such as DKs 131 constituting the DKU 300 are removablyconnected to the DKU box 198, respectively.

<Data Processing Method>

As the data processing method of the data processing system according tothe present embodiment, a processing of the CCW chain 402 is summarizedbelow. Data flow between each unit is represented in FIG. 1. The host101 issues a plurality of CCWs 401 and makes the disk array apparatus100 perform processing operation and job according to the CCW chain 402composed of a group of CCWs 401. The host 101 can collectively transferthe CCW chain 402 which are sequentially performed in the DKC 102 to theDKC 102 through the channel between the host 101 and the DKC 102 andeach CCW 401 is sequentially processed in the DKC 102. At this time, inorder to make the DKC 102 sequentially process the command, the host 101encodes a plurality of CCW 401 to the code 403 in the form of one datastream to collectively transfer a frame 404 of the code 403 through thechannel. Then the code 403 is decoded and executed in the DKC 102 sothat the plurality of CCW 401 can be collectively processed.

The host 101 creates the CCW chain 402 on a region of MS 112. As the CCWchain 402, for example, a CCW chain 802 as shown in FIG. 9 including theconditional branch according to the state and the processing result ofthe DKC 101 is created. A part of CCW 801 of the CCW chain 802 includesthe description of the search condition for the DKC 102. When the CCWchain 802 including the conditional branch will be performed, the host101 encodes the CCWs in the form of the code 403.

When the CCW 402 chain does not include the conditional branch, the CH113 can sequentially transfer the CCW chain in the form of each CCWframe 803 through the path 104 of the channel between the DKC 102 andthe PORT 121 as in the conventional process.

When performing the CCW chain 802 including the conditional branchaccording to the state and the processing result in the DKC 102, thehost 101 encodes a plurality of CCWs 401 to create one code 403including the description of processing the conditional branch in theform of a CCW 405.

Then the host 101 transmits the created code 403 as the frame 404 of thecommand for batch processing to the DKC 102 through the path 104 of thechannel.

The DKC 102 takes out the code 403 from the frame 404 that is receivedfrom the host 101. Then the DKC 102 sequentially decodes the code 403from the beginning and CCW-processes each CCW 405 which is obtained bythe decoding. In order to control from the host 101 side the progress ofCCW-processing in the DKC 102, the host 101 uses the CCW 405, which isdifferent from the original CCW 401, in the code 403 created by theencoding. Thereby the CCW chain included in the code 403 is differentfrom the original CCW chain 402.

When the controlling description of the conditional branch isparticularly included during the processing of the code 403, the DKC 102branches the CCW processing according to the description. For example,the DKC 102 determines the condition according to the description of thecondition in the parameter of the decoded command and performs thecommand to be the jumping destination based on the processing result.Then the DKC 102 ends the process by a predetermined CCW 405 accordingto the description. The DKC 102 returns status information correspondingto the end state and position of the process to the host 101 as aresponse according to the description. For example, the statusinformation is described in the parameter of the CCW included in thecode 403. The host 101 receives status information of the response fromthe DKC 102. Due to this, the host 101 recognizes the end of theprocessing of a plurality of CCW 401 corresponding to one code 403.

The host 101 determines the CCW that will be issued subsequently basedon the recognition of the end of process. When receiving an abnormal(error) status from the DKC 102 indicating that the process can notnormally ended in batch processing of a plurality of CCW 401, the host101 performs an error processing corresponding to the end state andposition of the process indicated by the return code (RC) of theresponse status and performs an recovery processing for the CCW at endposition.

The process of the CCW chain 402 according to the present embodimentwill be described in detail below. In the host 101, an IP 111 executingthe programs issues the CCW 401 and the CCW chains 402 and stores themin the region of the MS 112. For example, the CCW chain 802 as shown inFIG. 9 is issued. The CH 113 encodes the CCW chain 802 by executing theencode program 115 to create one code 403. The CH 113 transmits thecreated code 403 in the form of the frame 404 as the batch processingcommand to the PORT 121 through the path 104 of the channel to the PORT121 of the DKC 102 by executing a channel program. The PORT 121 of theDKC 102 takes out the code 403 from the received frame 404 and transfersthe code 403 to the CP 123 through the DTC 124. The CP 123 in the DKC102 decodes the code 403 by executing the decode program 126 andperforms the process corresponding to each CCW 405 obtained by thedecoding in accordance with the controlling description of theconditional branch. Ending the process of the code 403 corresponding tothe CCW chain 802, the DKC 102 transmits the response status including aRC representing the processing result from the PORT 121 to the CH 113.The host 101 refers to the RC included in the response status receivedby the CH 113 and recognizes the processing result of the CCW chain 802.The host 101 recognizes the end state of the process based on theresponse status and reports to the IP 111. The host 101 can specify thespot at which the error occurs based on the RC and determine the nextprocess.

As thus discussed above, the host 101 creates the code 403 including thecontrolling description of the conditional branch and transfers the code403 to the DKC 102 for batch process while the IP 111 and the CH 113control to issue, transfer and perform a plurality of CCWs 401constituting the CCW chain 402.

<Code and CCW Format>

FIG. 3 represents an example of forming the code 403 in the present dataprocessing system. The table is comprised of items including number 301,byte (address) 302, code 303, label 304, and command (CCW) 305 from theleft column. The data stream created by encoding in the host 101 isreferred to as the code 403 in the present embodiment. The arrows on theright side in the table indicate the execution sequence of each commandprocessing, each jump and the end state. Incidentally, a CCW issynonymous with a command.

The number 301 of the leftmost column is assigned for descriptivepurposes for identifying the CCW in each column. The number 301corresponds to one CCW and one step of processing/controlling but it isnot necessary in the code 403 during being transferred. In the presentembodiment, data is organized by a plurality of CCWs 401 as the base ofthe code 403. The data is to be one batch processing unit which iscomprised of each CCW indicated by the numbers #1-#14. The address 302represents an address of the memory area in which the CCW is stored. Theletter “x” in the parenthesis is hexadecimal notation of the address.The code 303 is a data stream including command codes and parameters,and is created by encoding the original CCW 401. One code 403 is formedby connecting the items of the code 303. The label 304 is a name foridentifying a jumping destination. The command 305 is a command (CCW)name corresponding to the CCW and the code 303 in the row. Incidentally,the code 303 includes spaces in an easy-to-understand format but thespaces are not necessary in the actual code 403.

In the present embodiment, #1, #5 and #9 correspond to “TEST MEM”command. #11 corresponds to “T&S” command. #2, #6 and #10 correspond to“Go Next” command. #3, #7 and #13 correspond to “ALW CRS” command. #4,#8, #12 and #14 correspond to “Return” command. The label of #5 is“Next1” that will be the jumping destination of the “Go Next” command of#2. “Next2” of #9 is the jumping destination of #6, and “Next3” of #13is the jumping destination of #10 in the same way.

The content of the CCW 401 and the 405 used as an example in the presentembodiment and the corresponding process will be described. Firstly,“TEST MEM” (test memory) command has the command code “8B” and thesubsequent sub-code is “10” as shown in FIG. 3. The “TEST MEM” commandhas a function to compare the memory area in the DKC 102 with theparameter of the command to check whether it is matched with thecondition. The parameter is a conditional value for the determination.The DKC 102 determines the code portion and CCW to be performedsubsequently based on the check result (matching with the condition ornot) and according to the controlling description of the conditionalbranch.

According to the “TEST MEM” command, the DKC 102 compares the parametervalue of the command “0100 0000 0200 0001” with the value of apredetermined memory area in the DKC 102 (search processing). When theparameter value and the value of the memory area are matched, the DKC102 returns a search condition matching status, alternatively those arenot matched, the DKC 102 returns a search condition mismatching status.

“T&S” (test and set) command has the command code “8B” and thesubsequent sub-code is “11”. The “T&S” command as well as the “TEST MEM”command has a function to compare the memory area in the DKC 102 withthe parameter of the command to check whether it is matched with thecondition. If the condition is matched, the parameter value is writtento the memory area of the DKC 102.

“Return” command has the command code “83” and the subsequent sub-codeis “02”. The “Return” command has a function to normally end when theparameter value is “00” and add the parameter value to the RCrepresenting the end state of the process and report as a responsestatus to the host 101 when the parameter value is other than “00”.

“Go Next” command has the command code “83” and the subsequent sub-codeis “08”. The “Go Next” command has a function to branch the processbased on the processing result of immediately preceding TEST commands(the “TEST MEM” command and the “T&S” command), i.e. jump instruction.The conditional branch is controlled as follows. The process is siftedto the address of the next step when the condition is matched in theimmediately preceding command, i.e. at the condition matching status.Alternatively the process is jumped to the address designated by theparameter of the command when the condition is not matched, i.e. at thecondition mismatching status. The encode program 115 encodes “Tic”command to convert into “Go Next” command that is a code portiondescribed with the control of the conditional branch according to thestate and the processing result in the DKC 102.

“ALW CRS” command has the command code “83” and the subsequent sub-codeis “52”. The “ALW CRS” command has a function to change the internalstate of the DKC 102.

The content of the code 403 according to the present embodiment isdescribed with reference to FIG. 3. In the CCW of #1, the code portion(303) of “TEST MEM” command with the command code “8B” and the sub-code“10” is stored in the memory area at the address “4”. The code 303 is“8B10 0100 0000 0200 0001” (hexadecimal notation). Where, “8B” is 1 byteand the entire code 303 is 10 bytes. The parameter “0100 0000 0200 0001”of the command will be a conditional value for the test.

In the CCW of #2, the code portion of “Go Next1” command with thecommand code “83” and the sub-code “08” is stored in the memory area atthe address “14”. The code 303 is “8308 0017” and its size is 4 bytes.The parameter of the command is “0017” and indicates the address(hexadecimal notation) corresponding to the label “Next1” to be jumpingdestination. In the present command processing, when the response statusfrom the immediately preceding command #1 is the condition matchingstatus, the process is jumped to the label “Next1” to be jumpingdestination. Alternatively, when it is the condition mismatching status,the process is shift to the address of the next #3.

In the CCW of #3, the code portion of “ALW CRS” command with the commandcode “83” and the sub-code “52” is stored in the memory area at theaddress “18”. The command does not have any parameter, the code 303 is“8352” and its size is 2 bytes.

In the CCW of #4, the code portion of “Return (8)” command with thecommand code “83” and the sub-code “02” is stored in the memory area atthe address “20”. The parameter of the command is “08”, the code 303 is“8302 08” and its size is 3 bytes. The parameter “08” indicates thevalue “08” (decimal notation) to be the return code (RC). Performing thecommand, the DKC 102 returns the response status including the RC “08”to the host 101 and ends the process in the DKC 102.

Next, in the CCW of #5, the code portion of “TEST MEM” command is storedin the memory area at the address “23 (x0017)” as in the #1. The label304 of the command is “Next1”. The command is used to perform a testwith the value different from the parameter value of the command of #1.Hereinafter the code portion of each CCW is stored in the memory area of#5-#8 as well as the #1-#4. In the CCW of #6, the code portion of “GoNext2” command is stored in the memory area at the address “33”. Theparameter of the command is “002A”. The command indicates the addresscorresponding to the label “Next2” to be the jumping destination. In theCCW of #7, the code portion of “ALW CRS” command is stored in the memoryarea at the address “37”. In the CCW of #8, the code portion of “Return(16)” command is stored in the memory area at the address “39”. Theparameter of the command is “10” and it indicates RC “16”.

Next, in the CCW of #9, the code portion of “TEST MEM” command is storedin the memory area at the address “42 (x002A)”. The label 304 of thecommand is “Next2”. The command is used to perform a test with the valuedifferent from the parameter value of the command of #1 and #5. Next, inthe CCW of #10, the code portion of “Go Next3” command is stored in thememory area at the address “52”. The parameter of the command is “0043”.The command indicates the address corresponding to the label “Next3” tobe a jumping destination.

Next, in the CCW of #11, the code portion of “T&S” command with thecommand code “8B” and the sub-code “11” is stored in the memory area atthe address “56”. The parameter of the command is “ffnn nnnn nnnn” andindicates the value to be set to the memory area of the DKC 102. Thecode 303 of the command is “8B11 ffnn nnnn nnnn” and its size is 8bytes.

Next, in the CCW of #12, the code portion of “Return (00)” command isstored in the memory area at the address “64”. The parameter of thecommand is “00” and it indicates RC “00”. Performing the command, theDKC 102 returns a normal status including the RC “00” to the host 101and ends the process.

Next, in the CCW of #13, the code portion of “ALW CRS” command is storedin the memory area at the address “67 (x0043)”. The command does nothave any parameter. The code 303 is “8352” and its size is 2 bytes.

Next, in the CCW of #14, the code portion of “Return (24)” command isstored in the memory area at the address “69”. The label 304 of thecommand is “Next3”. The parameter of the command is “18” which indicatesRC “24”.

<Frame of Command>

FIG. 4 represents the format of the frame 404 of a new command preparedfor batch processing of CCWs. The command is used to transfer the data(code 403) in the form of one frame when a plurality of CCWs aretransferred and batch-processed. The code 403 is the parameter of thecommand for the batch processing. The command can be used for both ofthe cases that a plurality of CCWs without the conditional branch arecollectively transferred, and that the CCWs including the conditionalbranch are collectively transferred.

The frame 404 of the command includes each field for a command code 501representing the command, a chain 502 being a flag representing apresence or absence of chain and a parameter (content data) 503 of thecommand. The command code 501 is, for example, “E7” in the frame 404.The chain 502 is, for example, set to “Nothing”. The code 403 created bythe above encode process is set as the parameter 503 (content data).

During performing a batch processing, the CCWs 401 to be batched areencoded by the CH 113 so that the code 403 is created in the host 101.In the CH 113, the created code 403 is used for the parameter 503 of theframe 404 with command code “E7”. The CH adds the chain 502 andinformation such as source/destination addresses to the parameter 503 tocreate the frame 404. Then CH 113 transmits the frame 404 to the PORT121.

<Data Processing Sequence>

FIG. 5 represents a sequence of the data processing when the CCWs 401are batch-processed between the host 101 and the DKC 102. The CH 113 ofthe host 101 transmits the frame 404 of the command created for batchprocessing to the PORT 121 of the DKC 102 in step S1. The DKC 102receives the frame 404 at the PORT 121 and takes out the code 403. Then,the PORT 121 sequentially decodes the code portion of the code 403. ThePORT 121 determines each CCW 405 obtained by the decoding and transmitsthem to the CP 123, for example, through the DTC 124. The CP 123executes CCW process for each CCW 405. In step S2 or S3, the PORT 121transmits to the CH 113 the status information as response statusaccording to the result of CCW processing. The status informationincludes the information corresponding to the normal end/abnormal end ofthe process and the information including the RC corresponding to theend state of the process according to the conditional branch. The S2represents the case that the normal status including RC “00” is returnedwhen the process is normally ended. The S3 represents the case that theabnormal status including the RC corresponding to the end state andposition is returned when the process is abnormally ended. Receiving theresponse status from the DKC 102, the host 101 can recognize the endstate and position of the process and determine the next process.

The procedure of processing the code 403 will be described below indetail. Hereinafter the code portion in each row of the number 301 inthe code 403 is referred to as a command row. In processing the code403, the decode program 126 executes the command rows generally innumerical order. At the “Go Next” command, when the status of processingresult in the last “TEST MEM” command is matching status, shift to anaddress of next command row is performed. Alternatively, when the statusis mismatching status, jump to the address of the jumping destinationindicated by the parameter of the present command is made. While theprocess is branched, the process of the code 403 is ended by executingany “Return” command and the designated RC is returned.

After performing the command row of #1, the DKC 102 performs the commandrow of #2. When the status of the processing result of the command rowof #1 is a matching status, shift to the command row of #3 is performedwithout jumping by the #2. Alternatively when the status of theprocessing result of the command row of #1 is a mismatching status, jumpto the designated address (label “Next1”) is made according to theexecution of #2. When it is the matching status in the #2, the DKC 102sequentially performs the command rows of #3 and #4 and returns RC “8”to the host 101. Then the process is ended. When it is the mismatchingstatus in the #2, the DKC 102 performs the same processes in #5-#8. Whenit is the matching status in #5, the DKC 102 returns RC “16” to he host101 in #8 and the process is ended.

After performing the command row of #9, the DKC 102 performs the commandrow of #10. When the status of the processing result of the command rowof #9 is a matching status, shift to the command row of #11 is performedwithout jumping by the #10. Alternatively when the status of theprocessing result of the command row of #9 is a mismatching status, jumpto the designated address (label “Next1”) is made according to theexecution of #10. When it is the matching status in the #10, the DKC 102sequentially performs the command rows of #11 and #12 and returns RC“00” to the host 101. Then the process is ended. When it is themismatching status in the #9, the DKC 102 sequentially performs thecommand rows of #13 and #14 and returns RC “24” to the host 101. Thusthe process is ended.

<Host Processing>

Next, the flow of each process in the present system will be described.FIG. 6 is a flowchart of encode process by the CH 113 in the host 101.FIG. 7 is a flowchart of decode process by the PORT 121 in the DKC 102.Particularly, a case that the code 403 of FIG. 3 is created from the CCWchain 802 of FIG. 9 to perform batch process will be described.Incidentally, “offset” in the description means the position of thecontrol step during processing of the code 403 by the program.

As a prerequisite, the IP 111 creates a plurality of CCWs 401 such asCCW chain 402 and stores them in the MS 112 in the host 101. The CH 113performs the usual channel input/output control processing by executingthe channel program and also performs encode process in relation to thebatch processing of a plurality of CCWs 401. The CH 113 encodes theplurality of CCWs 401 by executing the encode program 115. The channelprogram manages command words representing the command to be performed,flag information representing a chain, transfer counts representing thetransfer target and addresses representing the position of data andparameter in the memory.

The channel program of the CH 113 retrieves data and information such asa command (CCW 401), a flag, a transfer count from the MS 112 one by onein step S1. Next, the channel program updates the program counter instep 2. Then, the channel program determines whether the retrievedcommand is a conditional branch command such as the “Tic” command in astep S3.

When the retrieved command is not the “Tic” command in the step S3(S3—NO), the channel program stores the command in a channel programmanagement area in step S4. Next, the channel program stores the commandcode of the command in a data buffer for transferring data to the DKC102 in step S5. Then, the channel program sequentially retrieves thecommand code and the corresponding data and parameter from the MS 112and stores them to the data buffer in step S6. Thereby the command andparameter are encoded to the code portion. Next, after completing of theencoding for one command in step S7, the channel program updates theoffset. And shift to a step S12 is performed.

When the retrieved command is the “Tic” command in the step S3 (S3—YES),the channel program encodes each command as #2-#4 of FIG. 3 in stepsS8-S10. Firstly, in the step 8, the channel program stores the “Go Next”command in the channel program management area with set of the addressassigned by adding 9 bytes to the offset as a parameter. The total sizeof the command created by encoding the “Tic” command is 9 bytesaccording to the present embodiment. Therefore, that the parameter(jumping destination address) of the command is “offset+9”. Next, thechannel program stores “ALW CRW” command in the channel programmanagement area in the step S9. Then, the channel program sets “Return”command and its RC in the step S10. Next, after of completing to encodethe “Tic” command, the channel program updates the offset. And shift toa step S12 is performed.

The channel program determines whether a chain of the encoded commandexists or not in step S12. When the chain to the next command exists,the process flow returns to the step S1 and repeat processing to thenext command is performed in the same way. When the chain to the nextcommand does not exist, the code 403 comprised of continuous codeportions is completed and then the flow shifts to a transfer processingof the frame of the code 403. The CH 113 provides header information tothe code 403 to create the frame 404 for batch processing. And the CH113 transfers the frame 404 to the PORT 121 according to theconventional frame transfer process control.

In “TEST MEM” command as the first (#1) CCW, the command code “8B” andthe parameter (“10010000 . . . ”) are brought together into one codeportion (code 303) as shown in #1 of FIG. 3 by processing the encodeprogram 115. A parameter for process condition of performance in the DKC102 is set to the “TEST MEM” command. The next CCW is encoded so as tobe brought into one code portion in the same way. The created codeportion is added to behind the encoded code portion.

The encode program 115 encodes the “Tic” command of the CCW, which is ajump instruction for the conditional branch according to the state andthe processing result in the DKC 102, into the code portion including“Go next” command. The processing of the encode program 115 creates the“Go next” command, the address of jumping destination by the “Go next”command and each CCW of the jumping destination as the code portion inthe code 403 in order to control the conditional branch that performsdifferent addresses dependent on whether the condition is matched or notin DKC 102. The encode program 115 calculates which position the addressto be performed in case of mismatching in the entire code 403 will belocated at, in consideration of the CCW to be performed when thecondition is matched. And the encode program 115 adds as a parameter thenumber of bytes of the address of jumping destination by “Go Next”command.

In the present embodiment, after the “TEST MEM” command including theconditions, the “Go Next” command is described, which “Go Next” is to beperformed when the condition is not matched according to the state andthe processing result in the DKC 102 by the “TEST MEM” command. Andsubsequently, the command such as “ALW CRS” to be performed when thecondition is matched and to be the other jumping destination isdescribed.

The encode program 115 additionally creates the code portion of “Return”command and its return code (RC) in order to recognize the end state andposition of the process corresponding to the entire code 403 with regardto the CCW that is ended in the state of no chain existing.

The host 101 can recognize the end state and position of the commandprocessing in the DKC 102 based on the RC included in the responsestatus that is received from the DKC 102. Based on the received RC, thehost 101 determines the address at which the process is ended in the CCW401 and the CCW chain 402 that are the base of the code 403 and that arestored in MS 112. The host 101 determines any processing operation,which includes, for example, an error processing corresponding to theend state of the abnormal end of the CCW, a recovery processing of theCCW and the next processing when the processing is normally ended. Thenthe processing operation can be performed.

<DKC Processing>

In FIG. 7, the PORT 121 receives the frame of the CCW 401 and performsthe process involving a batch processing of a plurality of CCWs 401. ThePORT 121 decodes by decode program 126. The CP 123 processes each CCW405 by executing the control program. In the decoding, the code portionof the code 403 is sequentially decoded basically from the beginning toobtain each CCW (command code and parameter) and the CP 123 performs thecorresponding CCW processing. When the control of the conditional branchsuch as “Go Next” command is described in the code portion CCW 405, thecontrol is shifted to the step to be the jumping destination andperformed in the DKC 102. Then, the processing of one code 403 is endedby executing “Return” command.

The PORT 121 obtains the code 403 from the receive buffer in which theframe 404 is stored in step S21. Next, the PORT 121 clears an offsetcounter in step S22. Next, the PORT 121 sequentially decodes the codeportion of the code 403 according to the offset position indicated bythe offset counter and obtains the CCW (command) 405 corresponding tothe code portion in a step S23.

Next, the PORT 121 analyzes the command code of the obtained CCW 405 instep 24. As the result of the analysis, when the CCW 405 is Writecommand, the flow shifts to step S25, when it is “Test” command, theflow shifts to a step S28, when it is a control command such as thewrite control to the DK 131, the flow shifts to step S32 and when it is“Go Next” command corresponding to “Tic”, the flow shifts to a step S35,respectively.

When the CCW 405 is the Write command, the PORT 121 transfers data to bewritten to the CM 122 in the step S25. Next, the CP 123 performs theconventional Write command processing in the step 26. Next, the offsetis updated in the step S27 and the flow shifts to a step S39. When theCCW 405 is Read command, the process is performed in the same way.

When it is the “TEST” command, the PORT 121 transfers the parameter ofthe command to the CP 123 in the step S28. Next, the CP 123 performs theconventional “TEST” command processing in the step S29. The CP 123determines according to the condition that is set in the command as theparameter. In the “TEST MEM” command processing, for example, the CP 123compares the conditional value with the value of the memory area todetermines whether the condition is matched or not. Next, the CP 123stores the determination in the memory based on the “TEST” commandprocessing in the step S30. Next, the offset is updated in the step S31and the flow shifts to step S39.

When it is the control command, the PORT 121 transfers the parameter ofthe command to the CP 123 in the step S32. Next, the CP 123 performs theconventional control command processing in the step S33. Next, theoffset is updated in the step S34 and the flow shifts to the step S39.An example of the control command is described in the above-describedJapanese Patent Application Laid-Open Publication No. 2001-125866.

When it is the “Go Next” command, the PORT 121 transfers the parameterof the command to the CP 123 in the step S35. Next, the CP 123 refersthe determination (S30) in the “TEST” command processing to determinewhether the condition is matched or not. In the step 37, when thecondition is matched, the offset is updated so as to advance one stepand the flow shifts to the step S39. In the step 38, when the conditionis not matched, the offset is updated so as to advance to the address ofthe parameter of the present command (i.e. the jumping destination) andthe flow shifts to the step S39.

The PORT 121 checks the end state of the CCW processing based on theresult of the CCW processing by the CP 123 in the step S39. Where, theport 121 checks the normal end or the abnormal end of the CCW processingand the RC. Next, the PORT 121 stores status information including DSB(device status byte) according to the end state of the CCW processing ina transmit buffer in step S40. Next, the PORT 121 checks the statusinformation in step S41. When the RC as the status information does notexist, return to the step S23 is made and the PORT 121 continues thedecoding and the CCW processing of the code 405 according to theposition indicated by the counter in the same way. When the RC as thestatus information exists, the flow shifts to a step 42 and the PORT 121creates the frame with set of the status information including the RC.The PORT 121 transmits the frame as a status response to the CH 113 ofthe host 101 and the process is ended.

EFFECT AND ANOTHER EMBODIMENT

As thus described above, since the host 101 creates the code 403previously incorporating the control of the conditional branch ascommand progress control, the DKC 102 only sequentially decodes the codeportions of the code 403 and performs them in order to control thecommand progress.

Accordingly, a plurality of CCWs including the conditional branchaccording to the state and the processing result in the DKC 102 can bebatch-processed between the host 101 and the DKC 102. Thereby overheadin the channel can be reduced and traffic on the path can be reduced.Thus, the process performance can be improved. Additionally, a temporalsynchronous process between the host 101 and the DKC 102 by interlockingsuch that the host 101 waits a response status from the DKC 102 is notrequired. Thus, the process performance can be improved. Conventionally,it was difficult to determine the end position of the CCW chainprocessing by means of the CCW counter. However, in the presentembodiment, the end state and position can be clearly recognized bymeans of the RC in the host 101 and the DKC 102 and it is possible tospeedily shift to the next process.

As another embodiment, the DKC 102 stores data and information such asCCW 405 received at the PORT 121 in the region such as the CM 122 andthe SM 125 once, and the PORT 121 and the CP 123 may take out the storeddata and information to process them. Additionally, the IP 111 mayperform encode process by executing the encode program 115 in the host101. A case that the created CCW 401 and CCW chain 402 are encoded tocreate the code 403 is described in the embodiment, however, the IP 111may directly create the code 403 responsive to the desired processing.Additionally, the PORT 121 may perform a decoding and a commandprocessing by executing the decode program 126 in the DKC 102.

While the present invention has been described with reference to thepreferred embodiment, it is to be understood that the present inventionis not intended to be limited to the above described embodiments, andvarious changes may be made therein without departing from the spirit ofthe present invention.

The present invention can be applied to a data processing system toperform one processing operation or job by a plurality of commandsbetween the data processing apparatuses such as a mainframe dataprocessing system.

1. A data processing system comprising: a first data processingapparatus for issuing a command; and a second data processing apparatuscommunicatively connected to the first processor through a channel forperforming command processing corresponding to the command, wherein thefirst data processing apparatus including: an arithmetic processing unitfor issuing channel command words; a storage unit for storing data orinformation relating to the process; and an input/output channel unitfor controlling communication including transferring of the command tothe second data processing apparatus, the second data processingapparatus including: a control processor unit for performing the commandprocessing; a memory unit for storing data or information relating tothe process; and an input/output port unit for controlling communicationincluding transferring of the command to the first data processingapparatus, the first data processing apparatus encodes a plurality ofchannel command words to create a code having a command and itsparameter and including the description of controlling a conditionalbranch according to the state and the processing result in the seconddata processing apparatus, the input/output channel unit transmits thecode to the input/output port unit, the input/output port unit receivesthe code from the input/output channel unit, the second data processingapparatus decodes the code, the control processor unit sequentiallyprocesses each command obtained by the decoding according to thedescription of controlling the conditional branch and returns statusinformation representing the processing result, and the input/outputport unit transmits the status information as a response to theinput/output channel unit.
 2. The data processing system according toclaim 1, wherein the first data processing apparatus includes thedescription of a return code corresponding to the end state and positionof the processing according to the conditional branch in the code duringthe encoding, as the result of the code processing, the second dataprocessing apparatus transmits status information including the returncode corresponding to the end state and position of the processingaccording to the conditional branch to the first data processingapparatus, and the first data processing apparatus recognizes the endstate and position of the processing based on the return code.
 3. Thedata processing system according to claim 2, wherein the first dataprocessing apparatus reports the return code included in the statusinformation to program from which the channel command word operating onthe arithmetic processing unit is issued, and the arithmetic processingunit determines the channel command word to be issued subsequently whenthe return code indicates that the process is normally ended and thearithmetic processing unit performs a recovery processing of the channelcommand word corresponding to the end position when the return codeindicates that the process is abnormally ended.
 4. The data processingsystem according to claim 1, wherein the arithmetic processing unitcreates a channel command word chain comprised of a plurality of channelcommand words including the conditional branch by executing the program,and the first data processing apparatus encodes the channel command wordchain to create the code and transfers the created code to the seconddata processing apparatus through the channel.
 5. The data processingsystem according to claim 1, the arithmetic processing unit creates aplurality of channel command words and stores them to the storage unit,and the input/output channel unit encodes the plurality of channelcommand words to create the code having a command and its parameter andincluding the description of controlling the conditional branch andtransmits the created code as a command frame for batch processing ofthe plurality of channel command words.
 6. The data processing systemaccording to claim 1, wherein the arithmetic processing unit creates aplurality of channel command words and encodes the plurality of channelcommand words to create the code having a command and its parameter andincluding the description of controlling the conditional branch.
 7. Thedata processing system according to claim 1, wherein the input/outputport unit receives the code to transmit to the control processor unit,and the control processor unit decodes the code, sequentially processeseach command and its parameter obtained by the decoding in accordancewith the description of controlling the conditional branch and returnsstatus information representing the processing result.
 8. A dataprocessing system comprising: a first data processing apparatus forissuing a command; and a second data processing apparatuscommunicatively connected to the first processor through a channel forperforming command processing corresponding to the command, wherein thefirst data processing apparatus including: an arithmetic processing unitfor executing a program, issuing the command and processing input/outputdata; a storage unit for storing data or information such as a program,a command and an input/output data; and an input/output channel unit forcontrolling communication including transferring of the command to thesecond data processing apparatus, the second data processing apparatusincluding: a control processor unit for performing storage controlregarding the input/output data and the command processing, a memoryunit for storing data or information such as a program, a command and aninput/output data, and an input/output port unit for controllingcommunication including transferring of the command to the first dataprocessing apparatus, the arithmetic processing unit creates a pluralityof channel command words by executing the program, the input/outputchannel unit encodes the plurality of channel command words to create acode having a command and its parameter and including a description ofcontrolling a conditional branch according to the state and theprocessing result in the second data processing apparatus and adescription of a return code corresponding to the end state and positionof the processing, and transmits the created code as a frame to theinput/output port unit, the input/output port unit receives the frameand takes out the code to decode the code, the control processor unitsequentially processes each command and its parameter obtained by thedecoding in accordance with the description of controlling theconditional branch and returns the return code according to theprocessing result, as the result of processing the code, theinput/output port unit transmits status information including the returncode as a response to the input output channel unit, and the first dataprocessing apparatus recognizes the end state and position of theprocessing based on the return code included in the status information.9. A data processing method for processing commands between a first dataprocessing apparatus and a second data processing apparatus, comprisingthe steps of: encoding a plurality of command words for making thesecond data processing apparatus perform processing operation includinga conditional branch by the first data processing apparatus to create acode having a command and its parameter and including a description ofcontrolling the conditional branch according to the state and theprocessing result in the second data processing apparatus and adescription of a return code corresponding to the end state and positionof the processing; transmitting the created code by the first dataprocessing apparatus to the second data processing apparatus; receivingthe code from the first data processing apparatus by the second dataprocessing apparatus; decoding the code and sequentially processing eachcommand and its parameter obtained by the decoding according to thedescription of controlling the conditional branch by the second dataprocessing apparatus; as the result of the decoding, transmitting statusinformation including a return code representing the end state andposition of the processing corresponding to the conditional branch as aresponse to the first data processing apparatus by the second dataprocessing apparatus; and receiving the status information from thesecond data processing apparatus by the first data processing apparatusto recognize the end state and position of the processing.
 10. A programfor processing commands between a first data processing apparatus and asecond data processing apparatus, the program executing the processesof: encoding a plurality of command words for making the second dataprocessing apparatus perform processing operation including aconditional branch by the first data processing apparatus to create acode having a command and its parameter and including a description ofcontrolling the conditional branch according to the state and theprocessing result in the second data processing apparatus and adescription of a return code corresponding to the end state and positionof the processing; decoding the code to the command and its parameterincluding the description of controlling the conditional branch and thedescription of a return code to sequentially execute them and returningthe return code representing the end state and position of theprocessing corresponding to the conditional branch by the second dataprocessing apparatus; and recognizing the end state and position of theprocessing based on the return code included in the status informationfrom the second data processing apparatus by the first data processingapparatus.